﻿using Dapper;
using Estsh.Core.Base;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repositories;

using System.Collections;


namespace Estsh.Core.Wms.IRepositories
{
    public interface ICycleCountManageRepository : IBaseRepository<WmsCheckStock>
    {
        public Hashtable getCheckStockByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public List<WmsCheckStockList_Extend> getCheckStockListByPage(int PageSize, int PageIndex, string strWhere);
        public List<WmsCheckStockList_Extend> getSearchCheckStockList(string strWhere);
        public List<WmsCheckStockPart> getCheckStockPartByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public List<WmsCheckStockZone> getCheckStockZoneByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public List<WmsCheckStockLocate> getCheckStockLocateByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public List<WmsCheckStockRange> getCheckStockRangeByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public List<WmsCheckStock> getCheckStockByOrderNo(string orderNo);
        public List<KeyValueResult> GetErpwarehouse(int factoryId);
        public List<MultiKeyValueResult> GetMultiErpwarehouse(int factoryId);
        public List<MultiKeyValueResult> GetMultiPartNo(int factoryId);
        public List<MultiKeyValueResult> GetMultiWarehouse(int factoryId);
        public List<MultiKeyValueResult> GetMultiZone(int factoryId);
        public List<MultiKeyValueResult> GetMultiLocate(int factoryId);
        public List<KeyValueResult> GetMoveOrderType(int factoryId);
        public List<KeyValueResult> GetCheckStockType(int factoryId);
        public List<KeyValueResult> GetCheckStockStatus(int factoryId);
        public List<KeyValueResult> getSelectFactory();
        public List<KeyValueResult> getSelectWarehouse(int factoryId);
        public List<SysWarehouse> getSelectWarehouse(string warehouseid);
        public List<SysZone> getSelectZone(string zoneid);
        public List<SysLocate> getSelectLocate(string locateid);
        public List<KeyValueResult> getSelectZone(int factoryId);
        public List<KeyValueResult> getSelectVendor(int factoryId);
        public List<SysVendor> getSelectVendor(string vendorId);
        public List<KeyValueResult> GetPart(int type, int factoryId);
        public List<SysPart> GetPartList(int type, string partNo);
        public List<SysPart> GetPart(int type, string partId);
        public List<SysPart> getPartNoByZoneIds(string zoneIds);
        public List<SysPart> getPartNoByLocateIds(string locateIds);
        public List<SysPart> getPartNoByZoneIdsOrLocateIds(string zoneIds, string locateIds);
        public List<SysPart> getPartNoByZoneId(string zoneId);
        public List<SysPart> getPartNoByLocateId(string locateId);
        public Hashtable GetPartByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public Hashtable GetZoneByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public Hashtable GetLocateByPage(int PageSize, int PageIndex, string strWhere, string OrderBy);
        public bool saveCycleCountManage(WmsCheckStock checkStockParams, List<WmsCheckStockPart> checkStockPartParams, List<WmsCheckStockZone> checkStockZoneParams, List<WmsCheckStockLocate> checkStockLocateParams, List<WmsCheckStockRange> checkStockRangeParams);
        public Hashtable onAdjustment(String orderNo, string userId);
        public Hashtable onNoAdjustment(String orderNo, string userId);
        public Hashtable onBeginCycle(string orderno, string userId);
        public Hashtable onCloseCycle(string orderno, string userId);
        public Hashtable onCompleteCycle(string orderno, string userId);
        public Hashtable onReplay(string orderNo, string userId);
        public int onClose(string ids, string userId);
        public int EnableData(string ids, string userId);
        public int DisableData(string ids, string userId);
        public List<CycleCountList> getCheckStockListByExportData(string strWhere);
    }
}
